今回のテーマ

こんばんは、サルモリです。
今回もLinqのSelectメソッドの使い方として、下記のテーマについて書いていきます。
今回のテーマ
リストや配列を複数のリストや配列に分割する方法
今回はLinqを使用して、リストや配列を分割する方法を紹介していきます。
使用するLinqメソッドはSelect文とGroupByです。解説した記事があるので、良ければみてください。
ポイント
Selectメソッドで2つの引数を指定した処理の動きを理解できます。
CHECK
- 
  
- 
【C# sharp Linq】Selectメソッドで配列やリストに連番を割り振る方法ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ... 続きを見る 
ポイント

他のLinqの記事についてはこちら
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用するソースコードを書いていきます。
ソースコードには、リストと配列を使います。

Linqを使用して、配列を分割する方法
早速、Linqを使用して、配列を複数の配列に分割します。
行いたい処理
String型の配列を3要素ずつの配列に分割したい。
3要素の配列に分割
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp3 {     class Program     {         static void Main(string[] args)         {             String[] array = new string[] { "dog", "cat", "mouse", "lion" ,"bear","fox","tiger","pig","camel"};             var arrayGroup = array.Select((Name, No) => new { Name, No }).GroupBy(x => x.No / 3).ToArray();             foreach(var arrayitem in arrayGroup)             {                 foreach(var item in arrayitem)                 {                     Console.WriteLine(item.Name);                 }                 Console.WriteLine("-----------------------------");             }         }     } } | 
 result
dog
cat
mouse
-----------------------------
lion
bear
fox
-----------------------------
tiger
pig
camel
-----------------------------
3要素ずつ分割できていますね。下記の処理の流れが行われています。
step
1Selectメソッドで各配列の要素に対して、連番が割り振られる。
step
2Groupメソッドで各要素の連番に対して、3で割った値でグループ分けする。
下記のようなイメージで考えて頂ければいいと思います。Noでグループ化をしてます。
| No | 要素の値 | 
| 0 | dog | 
| 0 | cat | 
| 0 | mouse | 
| 1 | lion | 
| 1 | bear | 
| 1 | fox | 
| 2 | tiger | 
| 2 | pig | 
| 2 | camel | 

リストも同様にやってみましょう。こちらは2要素ずつ分けてみます。
行いたい処理
String型リストを2要素ずつのリストに分割したい。
2要素のリストに分割
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp3 {     class Program     {         static void Main(string[] args)         {             String[] array = new string[] { "dog", "cat", "mouse", "lion" ,"bear","fox","tiger","pig","camel"};             List<string> list = new List<string>();             list = array.ToList();             var listGroup = list.Select((Name, No) => new { Name, No }).GroupBy(x => x.No / 2).ToList();             foreach(var arrayitem in listGroup)             {                 foreach(var item in arrayitem)                 {                     Console.WriteLine(item.Name);                 }                 Console.WriteLine("-----------------------------");             }         }     } } | 
 result
dog
cat
-----------------------------
mouse
lion
-----------------------------
bear
fox
-----------------------------
tiger
pig
-----------------------------
camel
-----------------------------
リストでも簡単に分割することができます。

まとめ
今回はリストや配列を分割する方法を紹介しました。
意外とリストや配列の分割は使いたい場面が多いので、是非覚えてください。
前回の記事のSelectメソッドの連番割り振りを早速応用として使いました。
メソッドを合わせて使うと本当に色々なことが可能なので、皆さんも色々考えてみてくださいね。
最後まで見て頂きありがとうございました。

配列、リストなどの記事はこちら
他のLinqの記事についてはこちら


 
	 
	